package br.net.atasacramental.usuario.business;
import br.net.atasacramental.usuario.dao.UsuarioDAO;
import br.net.atasacramental.usuario.model.Usuario;

import java.util.List;
import under.wsl.service.Service;
/**
 * @author alexandre.araujo
 */
public class UsuarioBLL {
    private UsuarioDAO dao = null;
    public UsuarioBLL() {
        this.dao = new UsuarioDAO();
    }
    @Service(cache=true)
    public List<Usuario> get(){
        return this.dao.get();
    }
    
    @Service()
    public Usuario getByIdUsuario(int idUsuario) {
        return this.dao.getByIdUsuario(idUsuario);
    }
    
    @Service()
    public List<Usuario> getByNome(String nome) {
        return this.dao.getByNome(nome);
    }
    
    @Service()
    public Usuario getByEmail(String email) {
        return this.dao.getByEmail(email);
    }
    
    @Service()
    public Usuario getByLogin(String email) {
        return this.getByEmail(email);
    }
    
    @Service()
    public List<Usuario> getBySenha(String senha) {
        return this.dao.getBySenha(senha);
    }
    
    @Service()
    public List<Usuario> getByIdOrganizacao(int idOrganizacao) {
        return this.dao.getByIdOrganizacao(idOrganizacao);
    }
    
    @Service()
    public boolean logar(Usuario usuario) {
    	if(usuario.getEmail() == null || usuario.getSenha() == null){
    		return false;
    	}
    	Usuario user = this.dao.getByEmail(usuario.getEmail());
    	if(user!=null){
    		if(user.getSenha().equals(usuario.getSenha())){
    			return true;
    		}
    		
    	} 
        return false;
    }
     
    @Service(remove={"UsuarioBLL.get"})   
    public int insert(Usuario u){    
        if(this.dao.insert(u)){            
            return u.getIdUsuario();
        }
        return 0;
    }
    @Service(remove={"UsuarioBLL.get"})
    public boolean update(Usuario u){
        return this.dao.update(u);
    }
    @Service(remove={"UsuarioBLL.get"})
    public boolean delete(Usuario u){
         return this.dao.delete(u);
    }  
}
